package com.wangbo.heap;

import java.util.Comparator;
import java.util.PriorityQueue;

public class TestPriorityQueue {
    public static void main(String[] args) {
        test01();
    }

    /**
     * 借助 PriorityQueue 创建大根堆
     */
    public static void test01() {
        // 默认小根堆，借助自定义比较器转换成大根堆
        PriorityQueue<Integer> heap = new PriorityQueue<>(new MyComparator());

        heap.add(5);
        heap.add(7);
        heap.add(3);
        heap.add(0);
        heap.add(2);
        heap.add(5);

        while (!heap.isEmpty()) {
            System.out.println(heap.poll());
        }
    }

    /**
     * 自定义比较器
     * 默认从小到大，自定义从大到小
     */
    public static class MyComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2 - o1;
        }
    }

}
